[Home] Python으로 돌아가기

클래스 - 퀴즈 및 레포트

목차

1. 참조 자료
2. 퀴즈
3. 해설 및 코드
4. 레포트

1. 참조 자료

관련 동영상: https://youtu.be/MuNOAArae0M

2. 퀴즈

주어진 코드를 활용하여 다음 출력 결과를 갖는 부동산 프로그램을 작성하라.

주어진 코드

class House:
    # 매물 초기화
    def __init__(self, location, house_type, deal_type, price, completion_year):
        pass

    # 매물 정보 표시
    def show_detail(self):
        pass

출력 결과:

총 3개의 매물이 있습니다.
강남 아파트 매매 10억 2010년
마포 오피스텔 전세 5억 2007년
송파 빌라 월세 500/50 2000년

3. 해설 및 코드

클래스, 인스턴스, 생성자를 활용하여 프로그램을 완성한다.

class House:
    def __init__(self, location, house_type, deal_type, price, completion_year):
        self.location = location
        self.house_type = house_type
        self.deal_type = deal_type
        self.price = price
        self.completion_year = completion_year

    def show_detail(self):
        print(self.location, self.house_type, self.deal_type, self.price, self.completion_year)

house1 = House("강남", "아파트", "매매", "10억", "2010년")
house2 = House("마포", "오피스텔", "전세", "5억", "2007년")
house3 = House("송파", "빌라", "월세", "500/50", "2000년")

houses = [house1, house2, house3]
print(f"총 {len(houses)}개의 매물이 있습니다.")
for house in houses:
    house.show_detail()

4. 레포트

주어진 코드는 클래스(class)를 활용하여 평균 학점(average grade)을 산정하는 프로그램이다.

class GradeCalculator:
    def __init__(self, scores):
        self.scores = scores

    def calculate_average(self):
        total = sum(self.scores)
        return total / len(self.scores)

    def calculate_grade(self):
        average = self.calculate_average()
        if average >= 90:
            return "A"
        elif average >= 80:
            return "B"
        elif average >= 70:
            return "C"
        elif average >= 60:
            return "D"
        else:
            return "F"

scores = [85, 92, 78, 90, 89]
calculator = GradeCalculator(scores)
print("Average score:", calculator.calculate_average())
print("Grade:", calculator.calculate_grade())

출력 결과:

Average score: 86.8
Grade: B

위 코드를 수정하여, 학점(A, B+, C 등)일 경우, 평균 학점을 숫자로 변환하여 출력하라.

grade_scale = {"A+": 4.5, "A": 4.0, "B+": 3.5, "B": 3.0, "C+": 2.5, "C": 2.0, "F": 0.0}

class GradeCalculator:
    def __init__(self, scores):
        self.scores = scores

    def calculate_average(self):
        total = sum(grade_scale[grade] for grade in self.scores)
        return round(total / len(self.scores), 2)

scores = ["B+", "A", "C+", "A", "B+"]
calculator = GradeCalculator(scores)
print("Average score:", calculator.calculate_average())

출력 결과:

Average score: 4.15